<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    let a = 111;
    let str = '111';
    // == 判断值是否相等
    // console.log(str==a)  //true
    // === 判断值与类型都是否相等 恒等于
    console.log(str===a) //false

    // && || 逻辑运算符
    /*
        存在短路现象
        && 若第一个表达式为false，则结果必为false，所以不会再执行第二个表达式
        || 若第一个表达式为true，则结果必为true，所以不会再执行第二个表达式
    */
    let b = 1;
    console.log((b>2) && (++b)>2)
    console.log("b = "+b) //1

    let c = 1;
    console.log((c<2) || (++c)>2)
    console.log("c = "+c) //1

    //表达式1 ? 表达式2 : 表达式3  三目运算符
    //表达式1是否成立，若成立则执行表达式2，若不成立则执行表达式3

    let g = prompt("请输入您的年龄:");
    console.log("g = "+g)              
    console.log("g的类型 = "+typeof(g))//string 
    //双等于只判断数值，三等于还判断字符类型
    console.log(g==18?'刚好成年啦':'骚年');  
    console.log(g===18?'刚好成年啦':'骚年'); 



    
    /*
    优先级从高到底

    1. ()  优先级最高
    2. 一元运算符  ++   --   !
    3. 算数运算符  先*  /  %   后 +   -
    4. 关系运算符  >   >=   <   <=
    5. 相等运算符   ==   !=    ===    !==
    6. 逻辑运算符 先&&   后||
    7. 赋值运算符

    */
    // 练习1:
    let i = 4 >= 6 || '人' != '阿凡达' && !(12 * 2 == 144) && true
    console.log(i)

    // 练习2:
    let num = 10;
    let j = 5 == num / 2 && (2 + 2 * num).toString() === '22'
    console.log(j)

    // 练习3: 三个数中找到最大值, 并输出 (要求使用三目运算符)
    let m = 20;
    let n = 30;
    let k = 15;
    console.log(m>n?(m>k?m:k):((n>k)?n:k));
</script>
</html>